<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Main.java</title>
</head>
<body bgcolor="white">
<pre><tt><font color="#000000">001:</font> <i><font color="#9A1900">// KZ-Serializacja/Main.java</font></i>
<font color="#000000">002:</font>  
<font color="#000000">003:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>BufferedInputStream<font color="#990000">;</font>
<font color="#000000">004:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>BufferedOutputStream<font color="#990000">;</font>
<font color="#000000">005:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>IOException<font color="#990000">;</font>
<font color="#000000">006:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>ObjectInputStream<font color="#990000">;</font>
<font color="#000000">007:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>ObjectOutputStream<font color="#990000">;</font>
<font color="#000000">008:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>FileInputStream<font color="#990000">;</font>
<font color="#000000">009:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>FileOutputStream<font color="#990000">;</font>
<font color="#000000">010:</font> 
<font color="#000000">011:</font> <i><font color="#9A1900">//                      drzewko A             drzewko B</font></i>
<font color="#000000">012:</font> <i><font color="#9A1900">//                      ---------             ---------</font></i>
<font color="#000000">013:</font> <i><font color="#9A1900">//</font></i>
<font color="#000000">014:</font> <i><font color="#9A1900">//    pradziadkowie:       PAA                   PBA</font></i>
<font color="#000000">015:</font> <i><font color="#9A1900">//                        /   \                 /   \</font></i>
<font color="#000000">016:</font> <i><font color="#9A1900">//       dziadkowie:   DAA     DAB           DBA     DBB</font></i>
<font color="#000000">017:</font> <i><font color="#9A1900">//                              |             |</font></i>
<font color="#000000">018:</font> <i><font color="#9A1900">//          ojcowie:           OAA           OBA</font></i>
<font color="#000000">019:</font> <i><font color="#9A1900">//                            / | \           |</font></i>
<font color="#000000">020:</font> <i><font color="#9A1900">//          synowie:       SAA SAB SAC       SBA</font></i>
<font color="#000000">021:</font> <i><font color="#9A1900">//                            /   \         /   \</font></i>
<font color="#000000">022:</font> <i><font color="#9A1900">//         wnukowie:       WAA     WAB   WBA     WBB</font></i>
<font color="#000000">023:</font> 
<font color="#000000">024:</font> <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">class</font></b> <font color="#009900">Main</font> <font color="#FF0000">{</font>
<font color="#000000">025:</font>     <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">static</font></b> <font color="#009900">void</font> <b><font color="#000000">main</font></b><font color="#990000">(</font>String<font color="#990000">[]</font> args<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">026:</font> 
<font color="#000000">027:</font>           <i><font color="#9A1900">// drzewo A</font></i>
<font color="#000000">028:</font>         Osoba<font color="#990000">[]</font> wnukowieA <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">029:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"WAA"</font><font color="#990000">,</font><font color="#993399">2000</font><font color="#990000">),</font>
<font color="#000000">030:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"WAB"</font><font color="#990000">,</font><font color="#993399">2001</font><font color="#990000">),</font>
<font color="#000000">031:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">032:</font>         Osoba<font color="#990000">[]</font> synowieA <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">033:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"SAA"</font><font color="#990000">,</font><font color="#993399">1975</font><font color="#990000">),</font>
<font color="#000000">034:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"SAB"</font><font color="#990000">,</font><font color="#993399">1976</font><font color="#990000">,</font>wnukowieA<font color="#990000">),</font>
<font color="#000000">035:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"SAC"</font><font color="#990000">,</font><font color="#993399">1977</font><font color="#990000">),</font>
<font color="#000000">036:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">037:</font>         Osoba<font color="#990000">[]</font> ojcowieA <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">038:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"OAA"</font><font color="#990000">,</font><font color="#993399">1950</font><font color="#990000">,</font>synowieA<font color="#990000">),</font>
<font color="#000000">039:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">040:</font>         Osoba<font color="#990000">[]</font> dziadkowieA <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">041:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"DAA"</font><font color="#990000">,</font><font color="#993399">1925</font><font color="#990000">),</font>
<font color="#000000">042:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"DAB"</font><font color="#990000">,</font><font color="#993399">1926</font><font color="#990000">,</font>ojcowieA<font color="#990000">),</font>
<font color="#000000">043:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">044:</font> 
<font color="#000000">045:</font>           <i><font color="#9A1900">// drzewo B</font></i>
<font color="#000000">046:</font>         Osoba<font color="#990000">[]</font> wnukowieB <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">047:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"WBA"</font><font color="#990000">,</font><font color="#993399">2002</font><font color="#990000">),</font>
<font color="#000000">048:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"WBB"</font><font color="#990000">,</font><font color="#993399">2003</font><font color="#990000">),</font>
<font color="#000000">049:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">050:</font>         Osoba<font color="#990000">[]</font> synowieB <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">051:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"SBA"</font><font color="#990000">,</font><font color="#993399">1978</font><font color="#990000">,</font>wnukowieB<font color="#990000">),</font>
<font color="#000000">052:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">053:</font>         Osoba<font color="#990000">[]</font> ojcowieB <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">054:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"OBA"</font><font color="#990000">,</font><font color="#993399">1951</font><font color="#990000">,</font>synowieB<font color="#990000">),</font>
<font color="#000000">055:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">056:</font>         Osoba<font color="#990000">[]</font> dziadkowieB <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">057:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"DBA"</font><font color="#990000">,</font><font color="#993399">1927</font><font color="#990000">,</font>ojcowieB<font color="#990000">),</font>
<font color="#000000">058:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"DBB"</font><font color="#990000">,</font><font color="#993399">1928</font><font color="#990000">),</font>
<font color="#000000">059:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">060:</font> 
<font color="#000000">061:</font>           <i><font color="#9A1900">// tablica pradziadkow z drzew A i B</font></i>
<font color="#000000">062:</font>         Osoba<font color="#990000">[]</font> pradziadkowie <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">063:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"PAA"</font><font color="#990000">,</font><font color="#993399">1900</font><font color="#990000">,</font>dziadkowieA<font color="#990000">),</font>
<font color="#000000">064:</font>                     <b><font color="#0000FF">new</font></b> <b><font color="#000000">Osoba</font></b><font color="#990000">(</font><font color="#FF0000">"PBA"</font><font color="#990000">,</font><font color="#993399">1901</font><font color="#990000">,</font>dziadkowieB<font color="#990000">),</font>
<font color="#000000">065:</font>                 <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">066:</font> 
<font color="#000000">067:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"Przed serializacja:"</font><font color="#990000">);</font>
<font color="#000000">068:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"=== PradziadekA ==="</font><font color="#990000">);</font>
<font color="#000000">069:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font>pradziadkowie<font color="#990000">[</font><font color="#993399">0</font><font color="#990000">]);</font>
<font color="#000000">070:</font> 
<font color="#000000">071:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"=== PradziadekB ==="</font><font color="#990000">);</font>
<font color="#000000">072:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font>pradziadkowie<font color="#990000">[</font><font color="#993399">1</font><font color="#990000">]);</font>
<font color="#000000">073:</font> 
<font color="#000000">074:</font>           <i><font color="#9A1900">// serializujemy tablice 'pradziadkowie'</font></i>
<font color="#000000">075:</font>           <i><font color="#9A1900">// na dysk za pomoca metody 'serNaDysk'</font></i>
<font color="#000000">076:</font>         <b><font color="#000000">serNaDysk</font></b><font color="#990000">(</font>pradziadkowie<font color="#990000">,</font><font color="#FF0000">"osoby.dat"</font><font color="#990000">);</font>
<font color="#000000">077:</font> 
<font color="#000000">078:</font>           <i><font color="#9A1900">// ... i odczytujemy ja z dysku</font></i>
<font color="#000000">079:</font>           <i><font color="#9A1900">// za pomoca metody 'deSerZDysku'</font></i>
<font color="#000000">080:</font>         Osoba<font color="#990000">[]</font> pra <font color="#990000">=</font> <font color="#990000">(</font>Osoba<font color="#990000">[])</font><b><font color="#000000">deSerZDysku</font></b><font color="#990000">(</font><font color="#FF0000">"osoby.dat"</font><font color="#990000">);</font>
<font color="#000000">081:</font> 
<font color="#000000">082:</font>           <i><font color="#9A1900">// ... czy sie dobrze zapisalo i przeczytalo?</font></i>
<font color="#000000">083:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">();</font>
<font color="#000000">084:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"Po deserializacji z dysku:"</font><font color="#990000">);</font>
<font color="#000000">085:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"=== PradziadekA ==="</font><font color="#990000">);</font>
<font color="#000000">086:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font>pra<font color="#990000">[</font><font color="#993399">0</font><font color="#990000">]);</font>
<font color="#000000">087:</font> 
<font color="#000000">088:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"=== PradziadekB ==="</font><font color="#990000">);</font>
<font color="#000000">089:</font>         System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font>pra<font color="#990000">[</font><font color="#993399">1</font><font color="#990000">]);</font>
<font color="#000000">090:</font>     <font color="#FF0000">}</font>
<font color="#000000">091:</font> 
<font color="#000000">092:</font>     <b><font color="#0000FF">static</font></b> <font color="#009900">void</font> <b><font color="#000000">serNaDysk</font></b><font color="#990000">(</font>Object osoby<font color="#990000">,</font> String file<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">093:</font>         <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">094:</font>             ObjectOutputStream oos <font color="#990000">=</font>
<font color="#000000">095:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">ObjectOutputStream</font></b><font color="#990000">(</font>
<font color="#000000">096:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">BufferedOutputStream</font></b><font color="#990000">(</font>
<font color="#000000">097:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">FileOutputStream</font></b><font color="#990000">(</font>file<font color="#990000">)));</font>
<font color="#000000">098:</font>             oos<font color="#990000">.</font><b><font color="#000000">writeObject</font></b><font color="#990000">(</font>osoby<font color="#990000">);</font>
<font color="#000000">099:</font>             oos<font color="#990000">.</font><b><font color="#000000">close</font></b><font color="#990000">();</font>
<font color="#000000">100:</font>         <font color="#FF0000">}</font>
<font color="#000000">101:</font>         <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>IOException e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">102:</font>             e<font color="#990000">.</font><b><font color="#000000">printStackTrace</font></b><font color="#990000">();</font>
<font color="#000000">103:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">104:</font>         <font color="#FF0000">}</font>
<font color="#000000">105:</font>     <font color="#FF0000">}</font>
<font color="#000000">106:</font> 
<font color="#000000">107:</font>     <b><font color="#0000FF">static</font></b> Object <b><font color="#000000">deSerZDysku</font></b><font color="#990000">(</font>String file<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">108:</font>         Object ob <font color="#990000">=</font> <b><font color="#0000FF">null</font></b><font color="#990000">;</font>
<font color="#000000">109:</font>         <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">110:</font>             ObjectInputStream ois <font color="#990000">=</font>
<font color="#000000">111:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">ObjectInputStream</font></b><font color="#990000">(</font>
<font color="#000000">112:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">BufferedInputStream</font></b><font color="#990000">(</font>
<font color="#000000">113:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">FileInputStream</font></b><font color="#990000">(</font>file<font color="#990000">)));</font>
<font color="#000000">114:</font>             ob <font color="#990000">=</font> ois<font color="#990000">.</font><b><font color="#000000">readObject</font></b><font color="#990000">();</font>
<font color="#000000">115:</font>             ois<font color="#990000">.</font><b><font color="#000000">close</font></b><font color="#990000">();</font>
<font color="#000000">116:</font>         <font color="#FF0000">}</font>
<font color="#000000">117:</font>         <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>IOException e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">118:</font>             e<font color="#990000">.</font><b><font color="#000000">printStackTrace</font></b><font color="#990000">();</font>
<font color="#000000">119:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">120:</font>         <font color="#FF0000">}</font>
<font color="#000000">121:</font>         <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>ClassNotFoundException e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">122:</font>             e<font color="#990000">.</font><b><font color="#000000">printStackTrace</font></b><font color="#990000">();</font>
<font color="#000000">123:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">124:</font>         <font color="#FF0000">}</font>
<font color="#000000">125:</font>         <b><font color="#0000FF">return</font></b> ob<font color="#990000">;</font>
<font color="#000000">126:</font>     <font color="#FF0000">}</font>
<font color="#000000">127:</font> <font color="#FF0000">}</font>
<font color="#000000">128:</font> </tt></pre>
</body>
</html>
